A neural network implements a computational approach based to some extent on the central nervous systems of animals Neural networks can be used in artificial-intelligence-based approaches to machine learning that may be applied, for example, in speech recognition, image recognition/object detection, and other areas. Neural networks are composed of interconnected “neurons” that make decisions based on input value(s) and threshold(s). Convolutional neural networks are a class of neural networks that typically involve three stages of computation—convolutional layer(s), fully connected layer(s), and classifier(s).
Although convolutional neural networks perform well compared with more limited modeling-based approaches to machine learning, implementing convolutional neural networks in hardware incurs a high energy and computational complexity cost. For example, convolutional layers typically involve a high computational complexity, and fully connected layers typically involve a high memory storage cost. These factors, among others, deter implementation of convolutional neural networks in power-constrained devices such as wearables and mobile devices.